本文以初学身份对比RequireJS和jQuery来说明前者的优点,若使用其它库,可以“眼动”将jQuery替换为你所用的js库;

“模块化”,实现某一功能的方法独立化,使其可以复用;这一高大上的名词,按我的理解,和jQurey插件的功能一样;那为什么需要学习RequireJS呢?

jQuery,是将jQuery定义为全局变量,在脚本的任何地方都能调用jQuery中的方法;

对比于jQuery,RequireJS的优点就是,可以将各依赖关系(依赖关系---js库,指你需要引用这个库才能做其他功能)声明,并将各个依赖关系作为函数参数处理,即可以把jQuery等js库的作用域定义为局部(函数内部);

RequireJS是为实现模块化存在的,其核心功能有两个:定义模块define()和调用模块require();

定义模块define(),建一个功能库:

//推荐一个模块为一个单独的js文件;
无依赖关系的模块:

define({
name1:'value1',
name2:'value2'
})

无依赖关系,但需要处理一些初始化任务:

define(function(){

})

有依赖关系的模块:

define('module name',[],function(){

//第一个参数为模块名称,可选项--不建议命名;
//[]表示依赖关系的数组列表;
//function(){}回调函数,当指定模块都加载成功后被调用;
//加载的模块以参数形式传入该函数中,从而在回调函数内部就可以使用这么模块;
//参数和模块的数量和次序要一一对应;
//或者通过arguments[]来调用依赖;
//
//require()加载这个模块之前会先加载依赖关系;
//模块应该返回一个本模块/函数 return {
// 属性名:值,
// 方法名:function(){}
//模块名默认为脚本文件名;
//}

})

调用模块require():

require([],function(){

//[]表示依赖关系的数组列表;
//function(){}回调函数,当指定模块都加载成功后被调用;
//加载的模块以参数形式传入该函数中,从而在回调函数内部就可以使用这个模块的属性或方法;
//参数和模块的数量和次序要一一对应;
//或者通过arguments[]来调用依赖;

})

米花儿团儿
1.3k 声望75 粉丝